/*
 * ValidateGuiaBean
 *
 * Creado el 23/11/2009, 12:09:44 PM
 */


package com.unicon.autoservicio.validator;


import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.faces.validator.Validator;
import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.validator.ValidatorException;
/**
 *
 * @author jcabrera
 */
public class ValidateGuiaBean implements Validator {

   private static final String NUM_FAC_SEC = "[0-9]{3}";
   private static final String NUM_FAC_PAR = "[0-9]{7}";

   public void validate(FacesContext context, UIComponent component, Object value) {
      FacesMessage message = new FacesMessage();


      if (component.getId().equals("txtScGuia")) {
         String nroSecuenciaFactura = (String) value;
         Pattern maskSecuencuia = Pattern.compile(NUM_FAC_SEC);
         Matcher matcher = maskSecuencuia.matcher(nroSecuenciaFactura);

         if (!matcher.matches()) {
         
            message.setDetail("Sólo 3 dígitos");
            message.setSeverity(FacesMessage.SEVERITY_ERROR);
            throw new ValidatorException(message);
         }
      }

      if (component.getId().equals("txtNumeroGuia")) {
         String nroFacturaParcial = (String) value;
         Pattern maskParcial = Pattern.compile(NUM_FAC_PAR);
         Matcher matcher = maskParcial.matcher(nroFacturaParcial);

         if (!matcher.matches()) {
          
            message.setDetail("Sólo 7 dígitos");
            message.setSeverity(FacesMessage.SEVERITY_ERROR);
            throw new ValidatorException(message);
         }
      }


       if (component.getId().equals("txtCopiarScGuia")) {
         String nroSecuenciaFactura = (String) value;
         Pattern maskSecuencuia = Pattern.compile(NUM_FAC_SEC);
         Matcher matcher = maskSecuencuia.matcher(nroSecuenciaFactura);

         if (!matcher.matches()) {
           
            message.setDetail("Sólo 3 dígitos");
            message.setSeverity(FacesMessage.SEVERITY_ERROR);
            throw new ValidatorException(message);
         }
      }

      if (component.getId().equals("txtCopiarNumeroGuia")) {
         String nroFacturaParcial = (String) value;
         Pattern maskParcial = Pattern.compile(NUM_FAC_PAR);
         Matcher matcher = maskParcial.matcher(nroFacturaParcial);

         if (!matcher.matches()) {
           
            message.setDetail("Sólo 7 dígitos");
            message.setSeverity(FacesMessage.SEVERITY_ERROR);
            throw new ValidatorException(message);
         }
      }




   }


}
